<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>



    <script>

        /*
        Blob（Binary Large Object）表示二进制类型的大对象，通常是影像、音频、文本等多媒体文件；在 javascript 中，Blob 类型的对象是不可改变的原始数据
        
        */

         /*

        Blob URL 是一种伪协议，浏览器内部为每个 Blob URL 存储了一个 URL → Blob 的映射，如果这个映射不存在了，则会从浏览器中收到 404 错误；因此，此类 URL 较短，生成的 URL 仅在当前文档下才有效
           特性：
         由于有映射关系的存在，Blob 无法释放；可以手动销毁映射，或关闭当前文档
        
        */

        /*
        File  继承自 Blob
       */

       /*
         FileReader  用来读取 Blob，并转换为其他类型的数据
         转换方式：
         readAsArrayBuffer、readAsBinaryString、readAsDataURL、readAsText
       */
     

        /*
         ArrayBuffer
            概念：
            表示通用的、固定长度的原始二进制缓冲区

            与数组的区别：
            数组存在在堆中，ArrayBuffer 存放在栈中

            与 Blob 的区别：
            Blob 不可被修改，只能重新创建新的 Blob；ArrayBuffer 可以视图化，然后修改

            TypeArray 类型具体包含以下方法：
            Int8Array、Uint8Array、Uint8ClampedArray（颜色专用）、Int16Array、Uint16Array、Int32Array、Uint32Array、Float32Array、Float64Array

            DataView 类包含以下方法：
            getInt8、setInt8、getUint8、setUint8 等；没有与 Uint8ClampedArray 相关对应的方法
        
        */ 

        //Buffer是Node.js提供的对象，前端没有。 它一般应用于IO操作，例如接收前端请求数据时候，
        //可以通过以下的Buffer的API对接收到的前端数据进行整合（这里就不介绍了）


    </script>


</body>

</html>